package com.tedu.api.thread;
// //*线程----创建3种
//         * 第一种：子类   继承Thread    方法--【使用率不多】
//         *       ①：编写子类 MyThread1 继承 Thread
//         *       ②：子类 重写run方法
//         *       ③：实例化 MyThread1 对象  调用start方法【启动线程】
//         * 第二种：子类  实现Runnable  方案--推荐用法
//         *       ①：编写子类MyRunable1 实现 Runable 接口
//         *       ②：子类，强制重写run方法【线程运行】
//         *       ③：实例化MyRunable1对象【没有start方法】
//         *       ④：创建Thread对象，把实例化MyRunable1  对象通过构造器
//         *       ⑤：调用Thread对象 start方法
//         *     线程 继承Thread 内嵌Runable接口   重写run方法
//         *        javaOOP---缺点：Java单继承，子类继承Thread
//         *        无法拓展：不仅线程,其他集合，继承其他类，只具备线程功能
//         *        启动线程方法  start（）----线程生命周期
//         *        缺点：线程创建不明确
//         *        实现Runable   真正线程运行---定义run方法 线程运行状态
//         *        缺点：线程创建不方便---项目：步骤逻辑清晰
//         * 第三种：匿名内部类实现线程--->Lambda表达式
/**
 *          JavaOOP:封装--内部类：成员内部类，方法内部类，静态内部类，匿名内部类
 *          匿名内部类 创建方式
 *          对象  引用=new 对象（）{}
 *          匿名内部类--创建一次===子实现实例化一次Thread/Runable
 *                    优点：省去创建子类对象名称---接口创建，抽象类创建！
 *
 */
public class TR {
    public static void main(String[] args) {
        //1.类只需要实例化一次：匿名内部类---Thread
        Thread t1=new Thread(){
            public void run() {
                for(int i=0;i<1000;i++){
                    System.out.println("王");
                }
            }
        };
        t1.start();
        //2.类只需要实例化一次：匿名内部类--Runable
        Thread t2=new Thread(new Runnable() {
            public void run() {
                for (int i=0;i<1000;i++){
                    System.out.println("培");
                }

            }
        });
        t2.start();
    }
}
